<?php

class DatabaseSeeder extends Seeder {

	/**
	 * Run the database seeds.
	 *
	 * @return void
	 */
	public function run()
	{
		//Eloquent::unguard();

		$this->call('StrumentiMisuraTableSeeder');
		$this->command->info('StrumentiMisuraTableSeeder: dati di test inseriti nella tabella STRUMENTI_MISURA');
		
		$this->call('CommesseTableSeeder');
		$this->command->info('Dati di test inseriti nella tabella COMMESSE');
	}
}

class StrumentiMisuraTableSeeder extends Seeder {
	
	public function run()
	{
		DB::table('strumenti_misura')->delete();
		
		$file_array = Array();
		$linee_escluse = Array();
		$file_src = fopen('C:\xampp\htdocs\GLZMeasurementInstruments\app\database\seeds\anagrafica_sdm.csv', 'r');

		while (!feof($file_src)) {
			$line = fgets($file_src);
			$line_explode = explode(";",$line);
			if(strlen($line_explode[0]) > 0){
				array_push($file_array, $line_explode);
			}else{//escludo le linee vuote
				array_push($linee_escluse, $line_explode);
			}
		}
		fclose($file_src);
		print("StrumentiMisuraTableSeeder: ".count($linee_escluse)." record esclusi per dati obsoleti\n");
		print_r($linee_escluse);
		
		
		//TODO: modificare le date!!
		/*$str = '18/12/07';
		 $date = DateTime::createFromFormat('d/m/y', $str);
		echo $date->format('d/m/Y');*/
		
		//Inserisco tutti i dati tranne le linee di intestazione
		for($i = 1; $i < count($file_array); $i++){
			DB::table('strumenti_misura')->insert(array(
				array(
					'codice' =>$file_array[$i][0],
					'categoria' => trim($file_array[$i][1]),
					'famiglia' => trim($file_array[$i][2]),
					'descrizione' => trim($file_array[$i][3]),
					'matricola' => trim($file_array[$i][4]),
					'campo_misura' => trim($file_array[$i][5]),
					'taratura' => trim($file_array[$i][6]),
					'ente_taratura' => trim($file_array[$i][7]),
					'frequenza_controllo' => trim($file_array[$i][8]),
					'data_ultimo_controllo' => StrumentiMisuraTableSeeder::MyCreateFromFormat('d/m/y', $file_array[$i][9]),
					'data_fabbricazione' => StrumentiMisuraTableSeeder::MyCreateFromFormat('d/m/y', $file_array[$i][10]),
					'data_declassamento' => StrumentiMisuraTableSeeder::MyCreateFromFormat('d/m/y', $file_array[$i][11]),
					'data_scadenza' => StrumentiMisuraTableSeeder::MyCreateFromFormat('d/m/y', $file_array[$i][12]),
					'produttore' => trim($file_array[$i][13]),
					'errore_strumentale' => trim($file_array[$i][14]),
					'ripetitivita' => trim($file_array[$i][15]),
					'risoluzione' => trim($file_array[$i][16]),
					'created_at' => date("Y-m-d H:i:s", time()),
					'updated_at' => date("Y-m-d H:i:s", time()),
				)		
			));
		}
	}
	
	private static function MyCreateFromFormat($formato, $stringa){
		if(strcmp($stringa, "") == 0){
			return null;
		}else{
			return DateTime::createFromFormat($formato, trim($stringa));
		}
	}
}

class CommesseTableSeeder extends Seeder {

	public function run()
	{
		DB::table('commesse')->delete();
		
		DB::table('commesse')->insert(array(
				array('numero' => '130001', 'fase' => 10, 'id_strumento_misura' => 'Q6013', 'articolo' => '123456', 'macchina' => 'B20', 'data_inizio' => '2013-10-23 15:03:12', 'data_fine' => NULL, 'posizione' => 0),
				array('numero' => '130001', 'fase' => 10, 'id_strumento_misura' => 'Q5016', 'articolo' => '123456', 'macchina' => 'B20', 'data_inizio' => '2013-10-23 15:03:12', 'data_fine' => NULL, 'posizione' => 2),
				array('numero' => '130001', 'fase' => 20, 'id_strumento_misura' => 'Q6013', 'articolo' => '123456', 'macchina' => 'C1', 'data_inizio' => '2013-10-23 15:03:12', 'data_fine' => NULL, 'posizione' => 1),
				array('numero' => '130002', 'fase' => 10, 'id_strumento_misura' => 'Q2070', 'articolo' => '000123', 'macchina' => 'C9', 'data_inizio' => '2013-10-24 15:47:10', 'data_fine' => NULL, 'posizione' => 0),
				array('numero' => '130002', 'fase' => 10, 'id_strumento_misura' => 'Q5016', 'articolo' => '000123', 'macchina' => 'C9', 'data_inizio' => '2013-10-24 15:47:10', 'data_fine' => NULL, 'posizione' => 1),
				array('numero' => '130003', 'fase' => 10, 'id_strumento_misura' => 'Q5016', 'articolo' => '000123', 'macchina' => 'E3', 'data_inizio' => '2013-10-28 16:47:10', 'data_fine' => NULL, 'posizione' => 0),
				));
	}
	
}